/**  
 * All rights Reserved, Designed By daiw
 * @Title:  SysUserService.java   
 * @Package org.easy.system.manage.service   
 * @Description:    TODO (用一句话描述该文件做什么)   
 * @author: daiw     
 * @date:   2019年10月17日 下午3:37:47   
 * @Copyright: 2019 daiw Inc. All rights reserved. 
 */
package org.easy.system.manage.service;

import java.util.List;

import org.easy.system.manage.dto.SaveUserParam;
import org.easy.system.manage.dto.UserQueryParam;
import org.easy.system.manage.entity.SysUser;
import org.easyframework.core.entity.ProcessResult;
import org.system.manage.facade.entity.UserInfoDto;
import org.system.manage.facade.entity.ValidLoginResult;

/**
 * @ClassName: SysUserService
 * @Description: 用户服务接口
 * @author: daiw
 * @date: 2019年10月17日 下午3:37:47
 */
public interface SysUserService {

	/**
	 * 保存用户信息
	 * 
	 * @param param
	 * @return
	 */
	ProcessResult<?> insert(SaveUserParam param, UserInfoDto userInfoDto);

	/**
	 * 更新用户信息
	 * 
	 * @param param
	 * @return
	 */
	ProcessResult<?> update(SaveUserParam param);

	/**
	 * 校验登录信息
	 * 
	 * @param string
	 * @return
	 */
	ValidLoginResult validLogin(String loginInfo) throws Exception;

	/**
	 * 分页查询用户信息
	 * 
	 * @param queryParam
	 * @return
	 */
	ProcessResult<List<SysUser>> queryByPage(UserQueryParam queryParam);

	/**
	 * 查询用户详情
	 * 
	 * @param userId
	 * @return
	 */
	ProcessResult<SysUser> queryDetail(Long userId);

	/**
	 * 更新用户状态
	 * 
	 * @param userId
	 * @param status
	 * @return
	 */
	ProcessResult<?> updateStatus(Long userId, Integer status);

}
